package com.loong.system.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.loong.framework.handler.StringListTypeHandler;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;

/** 用户表 @TableName sys_user */
@TableName(value = "sys_user", autoResultMap = true)
@Data
public class User implements Serializable {
  @Serial
  @TableField(exist = false)
  private static final long serialVersionUID = 1L;

  /** id */
  @TableId private String id;

  /** 用户名 */
  private String username;

  /** 手机号 */
  private String phone;

  /** */
  private String password;

  /** 昵称 */
  private String nickname;

  /** 头像id */
  private String logoId;

  /** 性别（字典sex_type 1男 2女 3沃尔玛购物袋） */
  private String sex;

  /** 真实姓名 */
  private String realName;

  /** 电子邮件 */
  private String email;

  /** 身份证号 */
  private String idCard;

  /** 生日 */
  private LocalDate birthday;

  /** 角色标识 */
  @TableField(typeHandler = StringListTypeHandler.class)
  private List<String> roleIds;

  /** 逻辑删，默认0，1为已删除 */
  private Integer deleted;

  /** 多租户 */
  private String tenantId;

  /** 微信openid */
  private String wxOpenId;

  /** 微信手机号 */
  private String wxPhone;

  /** 微信昵称 */
  private String wxNickname;

  /** 微信头像 */
  private String wxAvatar;

  /** 地址 */
  private String address;

  /** 个性签名 */
  private String personalSignature;

  /** 创建时间 */
  @TableField(fill = FieldFill.INSERT)
  private LocalDateTime gmtCreate;

  /** 修改时间 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private LocalDateTime gmtModified;
}
